//	parts=0
	onexit *owari
	sdim fname,512
	buffer 2:picload "mapbg.bmp"
	mapsx=32:mapsy=32
	mapvx=10:mapvy=7
	partsx=winx:partsy=winy
	gosub *mapinit
//	screen 5,partsx,partsy,12:title "Parts"
	screen 1,256,128,12:title "Parts"
//	picload̂256,128@windowID 51
	gosub *selparts
	screen 4,160,96,12:title "Tool"
	cls 1:objmode 1,1:objsize 40,24
	pos 0,0:input mapsx,40,24
	pos 50,0:input mapsy,40,24
	pos 120,0:button "ύX",*sizechg
	button "Z[u",*mapsave
	button "[h",*mapload
	button "I",*owari
	screen 0,mapvx*64,mapvy*64,0
	cls 1
	mapx=0:mapy=0
*main
	gsel 0:gosub *putmap	//	*putmap ꉞ
	title "}bvGfB^[("+mapx+","+mapy+")"
*main2
	wait 5:stick a,271,1
	if a=0 : goto *main2
	if a&$300 : goto *msbtn	//	*msbtn ꉞ
	if a&1 : mapx--
	if a&4 : mapx++
	if a&2 : mapy--
	if a&8 : mapy++
	if mapx<0 : mapx=0
	if mapx+mapvx>=mapsx : mapx=mapsx-mapvx
	if mapy<0 : mapy=0
	if mapy+mapvy>=mapsy : mapy=mapsy-mapvy
	goto *main
//	Tu[`
*msbtn	//	Tu[`@ꉞ
	goto *win_chk
*end_chk
	x=mousex/64:y=mousey/64
	if (x>=mapvx)or(y>=mapvy) : goto *main2
	x=x+mapx:y=y+mapy
	if a&256 : map.x.y=parts : goto *main
	parts=map.x.y:gosub *selparts	//	parts`
	goto *main
*mapload	//	Tu[`@ꉞ
	logmes "load"
	dialog "map",16
	if stat=0 : goto *main
	fname=refstr:bload fname,mapdata,8
	mapsx=mapdata.0:mapsy=mapdata.1
	gosub *mapinit
	bload fname,mapdata
	memcpy map,mapdata.2,datasize
	gsel 4:objprm 0,mapsx:objprm 1,mapsy
	goto *main
*mapsave	//	Tu[`@ꉞ
	logmes "save"
	dialog "map",17
	if stat=0 : goto *main
	memcpy mapdata.2,map,datasize
	fname=getpath(refstr,1)
	bsave fname+".map",mapdata
	goto *main
*sizechg
	gosub *mapinit
	goto *main
*putmap	//	Tu[`@ꉞ
	;	}bv`
	redraw 0:gmode 0,64,64
	repeat mapvy:y=cnt
	repeat mapvx:x=cnt
		pos x*64,y*64
		mx=x+mapx:my=y+mapy:a=map.mx.my
		gcopy 2,(a\4)*64,(a/4)*64	//	vZw
	loop:loop
	redraw 1
	return
*mapinit	//	Tu[`@ꉞ
	dim map,mapsx,mapsy
	datasize=mapsx*mapsy*4
	dim mapdata,datasize+2
	mapdata.0=mapsx:mapdata.1=mapsy
	return
*selparts	//	Tu[`@ꉞ
	gsel 1:x=(parts\4)*64:y=(parts/4)*64	//	windowID 51
//	pos 0,0:gcopy 2,0,0,partsx,partsy	//	gcopy 3.xł̂܂ܓs
	pos 0,0:gcopy 2,0,0,256,128	//	gcopy 3.xł̂܂ܓs
	color 255,255,255:boxf x,y,x+63,y+1
	boxf x,y+62,x+63,y+63
	return
*pbtn	//	Tu[`@ꉞ
	parts=(mousey/64*4)+(mousex/64)	//	parts`	
	gosub *selparts:goto *main
*owari
	dialog "IĂłH",3
	if stat!=6 : goto *main
	end
	
*win_chk
	wincnt=0	//}EXJ[\̉ɂHSPEBhE̐
	dim ar_tmp,4
	ar_tmp.0=0
	ar_tmp.1=1
	ar_tmp.2=4
	repeat 3	//AIDŃNbNɃANeBuɂȂEBhE𑀍ɂ邾Ȃ3ȏ
		gsel ar_tmp.cnt
		if (ginfo_mx>ginfo_wx1) and (ginfo_mx<ginfo_wx2) and (ginfo_my>ginfo_wy1) and (ginfo_my<ginfo_wy2) {//EBhEɃ}EXJ[\
			winsel = ar_tmp.cnt	//cntEBhEIDƂĕێ
			wincnt++	
		}
	loop

	if wincnt {//ǂ炩̃EBhEɃ}EXJ[\

		if wincnt>1 {//dȂĂ̈Ƀ}EXJ[\
			if ginfo_act>=0 {gsel ginfo_act}//ANeBuiʏɂEBhEjȃEBhE𑀍ɂ
		}else{//dȂĂȂEBhEɃ}EXJ[\
			gsel winsel	//wincnt1Ȃ̂winselɓĂID{ɂ
		}
		
		getkey mlc,1
		if mlc {
			switch ginfo_sel
				case 0
					goto *end_chk
				swbreak  

				case 1 
					goto *pbtn
				swbreak

				default 
				
				swbreak
			swend
		}
		title ""+mousex+" "+mousey
	}
	goto *main2